Many types of computer applications exist to help users access and manipulate data, including spreadsheet applications. These applications can also be referred to simply as spreadsheets. Non-limiting examples of spreadsheets include Excel and Lotus 1-2-3.
Spreadsheets are configured to present tables of cells in an arrangement of rows and columns. Each cell may contain a value that has a predefined relationship to one or more other values contained in other cells. Spreadsheets let users define what value or type of data is in each cell and how the different cells depend on one another. These relationships are called formulas. The formulas presented in a spreadsheet can be very simple or complex.
In some instances, a single spreadsheet may contain many different types of formulas which are applied to individual cells and/or whole ranges of cells. Spreadsheets can also span multiple worksheets that are combined into a single workbook, wherein formulas in one worksheet can reference the values contained in one or more other worksheets of the same workbook.
To make a formula, one simply replaces a number in a mathematical relationship with a cell reference. For instance, the spreadsheet formula defined as “=10*B20*C15” would produce a value resulting from the product of ten (10), the value contained in cell B20 (located at column B, row 20) and the value contained in cell C15 (located at column C, row 15). Accordingly, if B20 held the value of five (5) and C15 held the value of twenty (20), the resulting value would be one thousand (1000) (i.e., 10*5*20=1000).
It will be appreciated, with regard to the foregoing example, that cells B20 and C15 might also hold their own formulas, referring to other cells, such that a string of formulas can be chained together. This ability to chain formulas together is what gives spreadsheets their power.
Once a particular formula is created, it is often duplicated in other cells to enable a user to explore the impact of the relationship defined by the formula on other sets of data. To facilitate the deployment of the formula to different cells, spreadsheets are configured with functionality that enables users to copy the formula from one cell to another with a simple gesture such as a select and drag gesture. However, this type of functionality is only applicable to situations in which the formula is copied from one cell to one or more immediately adjacent cells. Otherwise, the user must perform multiple gestures and/or navigate multiple menus to copy and paste the formula to other cells.
Once a formula is entered into a cell, the value resulting from the formula is presented to the user within the cell. Accordingly, the formula is somewhat hidden from the user until the user actually selects or directs focus to the cell. Once selected, the formula is presented in a separate field, such as within the formula field presented with the menu ribbon of the spreadsheet.
Review of formulas is important, to make sure that the formulas are entered correctly and to facilitate any edits that might be needed down the road. However, even with a review field, it can still be somewhat cumbersome to keep track of and review each of the separate formulas entered into a spreadsheet, particularly when the workbook includes one or more worksheets that may each span hundreds, thousands or even more columns and rows.
Sometimes specialized auditing software is used to examine a spreadsheet, to determine which individual formulas are presented within the spreadsheet. This auditing software can be particularly helpful to determine how complex and unwieldy a spreadsheet is and how much time and how many resources are likely required to fully audit the formulas within the spreadsheet. For instance, if it is determined that a spreadsheet has fifty (50) unique formulas, that spreadsheet will likely be considered more difficult to audit than a spreadsheet that only contains three (3) unique formulas.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.